package com.esun.payment_api.mapper;

import com.esun.payment_api.bean.DkClaimAbolishBean;
import com.esun.payment_api.bean.DkFlowBean;
import com.esun.payment_api.domain.DkClaimCancel;
import com.esun.payment_api.domain.DkClaimCancelExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface DkClaimCancelMapper {
    long countByExample(DkClaimCancelExample example);

    int deleteByExample(DkClaimCancelExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(DkClaimCancel record);

    int insertSelective(DkClaimCancel record);

    List<DkClaimCancel> selectByExample(DkClaimCancelExample example);

    DkClaimCancel selectByPrimaryKey(Integer id);

    int updateByExampleSelective(@Param("record") DkClaimCancel record, @Param("example") DkClaimCancelExample example);

    int updateByExample(@Param("record") DkClaimCancel record, @Param("example") DkClaimCancelExample example);

    int updateByPrimaryKeySelective(DkClaimCancel record);

    int updateByPrimaryKey(DkClaimCancel record);

    void abolishClaim(Map map);

    int insertSelectiveReturnId(DkClaimCancel record);

    void submitAbolishClaim(Short companyId, String uuid, Integer cancelId, Short userId, Short departmentId);

    void resubmitAbolishClaim(Short companyId, String uuid, Integer cancelId, Short userId, Short departmentId);

    List<DkClaimAbolishBean> getClaimAbolishData(Short companyId, Short deptId,
                                                 Short userId, String searchStr,
                                                 String monthStr, String deptName,
                                                 String flowStatus, Integer abolishId);

    List<DkFlowBean> getClaimAbolishFlow(Short companyId, Integer abolishId);

    List<DkFlowBean> getApplicationFlowByAbolishId(Integer abolishId);

    void rejectClaimAbolish(Integer flowId, String flowNote, Short userId, Integer abolishId);

    void approveClaimAbolish(Integer flowId, String flowNote, Short userId, Integer abolishId);

    Integer getFlowIdFromAbolish(Integer abolishId);

    void cancelClaimAbolish(Integer abolishId, Short userId);
}